package com.spring.dynamicdatasource.enums;

/**
 * 数据库类型
 *
 * @author HouKunLin
 * @date 2019/9/10 0010 16:37
 */
public enum DatabaseType {
    /**
     * MySQL数据库
     */
    MYSQL("MySQL", "jdbc:mysql://${host}:${port}/${database}?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true&useInformationSchema=true"),
    /**
     * Oracle数据库
     */
    ORACLE("Oracle", "jdbc:oracle:thin:@//${host}:${port}/${database}"),
    /**
     * SQL Server数据库
     */
    SQLSERVER("SQL Server", "jdbc:sqlserver://${host}:${port};DatabaseName=${database}"),
    /**
     * PostgreSQL数据库
     */
    POSTGRESQL("PostgreSQL", "jdbc:postgresql://${host}:${port}/${database}"),
    /**
     * DB2数据库
     */
    DB2("DB2", "jdbc:db2://${host}:${port}/${database}"),
    ;

    private String name;
    private String jdbcUrl;

    private static final String PREFIX = "DatabaseTypeKeyPrefix_";

    DatabaseType(String name, String jdbcUrl) {
        this.name = name;
        this.jdbcUrl = jdbcUrl;
    }

    /**
     * 获得一个KEY
     *
     * @return
     */
    public String getKey() {
        return PREFIX + toString();
    }

    public String getName() {
        return name;
    }

    public String getJdbcUrl() {
        return jdbcUrl;
    }
}
